package hcn.protocol.ods.feeinquiry;

import lombok.*;

import java.io.Serializable;
import java.util.List;

/**
 * @Author: zhusm@bsoft.com.cn
 *
 * @Description: 住院费用详情
 *
 * @Create: 2019-05-27 09:59
 **/
@NoArgsConstructor
@Data
@AllArgsConstructor
@Builder
@ToString
public class OutpatientDetailFeeResponseBean extends BaseNullFee implements Serializable {
    private static final long serialVersionUID = 1656779665964168441L;

    /**
     * hospitalCode : 医院代码
     * hospitalName : 医院名称
     * departmentName : 住院科室名称
     * hospitalizationDays : 住院天数
     * hospitalizationStartTime : 住院开始时间
     * hospitalizationEndTime : 住院结束时间
     * costDate : 费用日期
     * medicalDate : 就诊日期
     * patientName : 病人姓名
     * patientCode : 患者在 his 中的唯一标识
     * patientMedicalCardTypeText : 诊疗卡类型
     * patientMedicalCardNumber : 诊疗卡号
     * medicalInsuranceText : 医保类型名称
     * patientNature : 病人性质
     * invoiceNumber : 发票号码
     * invoiceStatus : 发票状态
     * costAmount : 费用金额/发票总金额
     * selfPayAmount : 自付金额
     * reimburseAmount : 报销金额
     * itemDetails : 项目详细
     * settlementDetails : 支付详细
     */

    private String hospitalCode;
    private String hospitalName;
    private String departmentName;
    private String hospitalizationDays;
    private String hospitalizationStartTime;
    private String hospitalizationEndTime;
    private String costDate;
    private String medicalDate;
    private String patientName;
    private String patientCode;
    private String patientMedicalCardTypeText;
    private String patientMedicalCardNumber;
    private String medicalInsuranceText;
    private String patientNature;
    private String invoiceNumber;
    private String invoiceStatus;
    private String costAmount;
    private String selfPayAmount;
    private String reimburseAmount;
    private List<ItemDetailsBean> itemDetails;
    private List<SettlementDetailsBean> settlementDetails;

    @NoArgsConstructor
    @Data
    @AllArgsConstructor
    @Builder
    @ToString
    public static class ItemDetailsBean {
        /**
         * itemType : 项目类别 1西药、2中药/中成药、3中草药、4检查、5检验、9材料、99其他等
         * itemName : 项目名称
         * itemAmount : 项目总金额
         * introduce : 项目介绍
         * itemRemark : 项目备注
         * itemList : [{"itemName":"项目名称","itemQuantity":"项目数量","itemUnit":"项目单位","itemUnitPrice":"项目单价","specifications":"规格","usage":"用法","dosage":"用量","frequency":"频次"}]
         */

        private String itemType;
        private String itemName;
        private String itemAmount;
        private String introduce;
        private String itemRemark;
        private List<ItemListBean> itemList;

        @NoArgsConstructor
        @Data
        @AllArgsConstructor
        @Builder
        @ToString
        public static class ItemListBean {
            /**
             * itemName : 项目名称
             * itemQuantity : 项目数量
             * itemUnit : 项目单位
             * itemUnitPrice : 项目单价
             * specifications : 规格
             * usage : 用法
             * dosage : 用量
             * frequency : 频次
             * itemType : 项目类别 1西药、2中药/中成药、3中草药、4检查、5检验、9材料、99其他等
             */

            private String itemName;
            private String itemQuantity;
            private String itemUnit;
            private String itemUnitPrice;
            private String specifications;
            private String usage;
            private String dosage;
            private String frequency;
            private String itemType;

        }
    }

    @NoArgsConstructor
    @Data
    @AllArgsConstructor
    @Builder
    @ToString
    public static class SettlementDetailsBean {
        /**
         * feeName : 支付类型名称
         * feeValue : 支付金额
         * feeRemark : 支付说明
         */

        private String feeName;
        private String feeValue;
        private String feeRemark;
    }
}
